home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Visual Database / Visual Foxpro 6.0 (Ent. Edition) / Vf6ent Extractor.EXE / TOOLS / XSOURCE / XSOURCE.ZIP / vfpsource / wizards / Wzcommon / keypress.prg < prev    next >
Encoding:
Text File  |  1998-05-01  |  2.6 KB  |  87 lines

  1. #define C_DEBUG .t.
  2.  
  3. * The following string is used to form a message when 
  4. * _LOGFILE cannot be created or opened. The message will
  5. * look like one of these two examples:
  6. *
  7. *    FCREATE("test1.log") failed. Event logging disabled.
  8. *    FOPEN("test1.log", 2) failed. Event logging disabled.
  9.  
  10. #define LOGFILEERROR_LOC    " failed. Event logging disabled."
  11.  
  12. #IF C_DEBUG
  13.     if type('_logfile') = 'C' .and. !empty(_logfile)
  14.         private iHandle, oObjRef, cName, cKeyboard
  15.         
  16.         oObjRef = this
  17.         cName = this.Name
  18.         do while type('oObjRef.Parent') = 'O'
  19.             cName = oObjRef.Parent.Name + '.' + cName
  20.             oObjRef = oObjRef.Parent
  21.             if !type('oObjRef.Parent') = 'O'
  22.                 * We're at the top--use the oWizard variable instead
  23.                 * of the Name and exit
  24.                 m.cName = 'oWizard.'+m.cName
  25.                 exit
  26.             endif
  27.         enddo
  28.  
  29.         m.cKeyboard = ""
  30.         
  31.         if between(m.nKeyCode, 0, 255) .and. ;
  32.             (m.nShiftAltCtrl = 0 .or. m.nShiftAltCtrl = 1)
  33.             do case
  34.             case (isalpha(chr(m.nKeyCode)) .or. isdigit(chr(m.nKeyCode)))
  35.                 * Alphabetic and Numeric characters
  36.                 m.cKeyboard = '"' + chr(m.nKeyCode) + '"'
  37.             case inlist(chr(m.nKeyCode), '.', ':', '\', '_')
  38.                 * Characters used in file and path names
  39.                 m.cKeyboard = '"' + chr(m.nKeyCode) + '"'
  40.             endcase
  41.         endif
  42.         do case
  43.         case !empty(m.cKeyboard)
  44.             * The keystroke was handled above
  45.         case m.nKeyCode = 32
  46.             m.cKeyboard = '"{SPACEBAR}"'
  47.         case m.nKeyCode = 13 .and. nShiftAltCtrl = 0
  48.             m.cKeyboard = '"{ENTER}"'
  49.         case m.nKeyCode = 9 .and. nShiftAltCtrl = 0
  50.             m.cKeyboard = '"{TAB}"'
  51.         case m.nKeyCode = 8 .and. nShiftAltCtrl = 0
  52.             m.cKeyboard = '"{BACKSPACE}"'
  53.         case m.nKeyCode = 331 .and. nShiftAltCtrl = 0
  54.             m.cKeyboard = '"{LEFTARROW}"'
  55.         case m.nKeyCode = 333 .and. nShiftAltCtrl = 0
  56.             m.cKeyboard = '"{RIGHTARROW}"'
  57.         case m.nKeyCode = 328 .and. nShiftAltCtrl = 0
  58.             m.cKeyboard = '"{UPARROW}"'
  59.         case m.nKeyCode = 336 .and. nShiftAltCtrl = 0
  60.             m.cKeyboard = '"{DNARROW}"'
  61.         endcase
  62.  
  63.         if !file(_logfile)
  64.             m.iHandle = fcreate(_logfile)
  65.         else
  66.             m.iHandle = fopen(_logfile, 2)
  67.         endif
  68.  
  69.         if m.iHandle = -1
  70.             =MessageBox(iif(!file(_logfile), 'FCREATE("', 'FOPEN("') + ;
  71.                 _logfile + iif(!file(_logfile), '") ', '", 2)') + ;
  72.                 LOGFILEERROR_LOC)
  73.             release _logfile
  74.         else
  75.             =fseek(m.iHandle, 0, 2) && go to EOF
  76.             if !empty(m.cKeyboard)
  77.                 =fputs(m.iHandle, "KEYBOARD " + m.cKeyboard)
  78.             else
  79.                 =fputs(m.iHandle, "* Keypress not handled: nKeyCode = " + ;
  80.                     alltrim(str(m.nKeyCode)) + ", nShiftAltCtrl = " + ;
  81.                     alltrim(str(m.nShiftAltCtrl)))
  82.             endif
  83.             =fclose(m.iHandle)
  84.         endif
  85.     endif
  86. #ENDIF
  87.